Database SQL – Having Clause
จาการใช้งาน SQL Select statement เราสามารถกำหนดเงื่อนไขในการเลือกข้อมูลด้วย SQL Where Clause นอกจากนี้ยังสามารถจัดกลุ่มข้อมูลด้วย SQL GROUP BY ได้ ซึ่งหลังจากจัดกลุ่มแล้วเราไม่สามารถทำเงือนไขเพื่อเลือกข้อมูลจาก SQL Where Clause ได้อีกรอบแล้ว เราต้องใช้คำสั่ง SQL HAVING Clause แทน ในการเลือกข้อมูลด้วยเงือนไขที่ต้องการ หลังจากมีการจัดกลุ่ม หรือ ทำ SQL GROUP BY
รูปแบบ (Syntax)
SQL Having Clause
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
จะเห็นว่าการใช้งานตำแหน่งของ Where, Group by, Having และ Order by จะมีการเรียงลำดับการใช้งานแบบนี้เสมอ
SELECT column1, column2
FROM table1, table2
WHERE [ conditions ]
GROUP BY column1, column2
HAVING [ conditions ]
ORDER BY column1, column2
ตัวอย่างคำสั่ง VIEW TABLE
Table – CUSTOMERS
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
ทดลองดึงข้อมูลจาก table CUSTOMER โดยมีการจัดกลุ่ม GROUP BY ด้วย column AGE จากนั้นเลือกแสดงผลเฉพาะเงื่อนไขที่ มีจำนวนคนที่มีอายุเท่ากัน มากกว่าตั้งแต่ 2 คนขึ้นไป
SQL > SELECT AGE, COUNT(AGE) AS TOTAL
FROM CUSTOMERS
GROUP BY age
HAVING COUNT(age) >= 2;
ผลลัพธ์ที่ได้
+------+--------+
| AGE | TOTAL |
+------+--------+
| 25 | 2 |
+------+--------+
Reference:
รวมคำสั่ง SQL Command พื้นฐานเบื้องต้น
Author: Suphakit Annoppornchai
Credit: https://saixiii.com, https://www.tutorialspoint.com